using System;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web.UI.WebControls;
using Anthem;
using App_Code;
using DataAccess;
using MinCultura.Sinic.Basicas;
using Common;

using MinCultura.Sipa.EntidadesArtes; 
using MinCultura.Sipa.DataAccess.EntidadesArtes;
using MinCultura.Sipa.DataAccess.AgentesArtes;
using MinCultura.Sipa.AgentesArtes;
using UsrControls;

using CompareValidator = Anthem.CompareValidator;
using CustomValidator = Anthem.CustomValidator;
using Label = Anthem.Label;
using RadioButtonList = Anthem.RadioButtonList;
using RegularExpressionValidator = Anthem.RegularExpressionValidator;
using RequiredFieldValidator = Anthem.RequiredFieldValidator;
using TextBox = Anthem.TextBox;

public delegate void CambioAforoDelegate(string capacidadMaxSillas);

namespace web.Controls
{
	/// <summary>
	/// Summary description for AgentesBasicos.
	/// </summary>
	public class InfraestructuraTipoCapacidad : SinicUserControl
	{
		public event CambioAforoDelegate CambioAforoEvent;
		private CambioAforoDelegate CambioAforo;

		protected UsrControls.TextBoxBase txtAforo;
		protected UsrControls.TextBoxBase txtMetrosConstruccion;
		protected UsrControls.DropDownBase ddlNivelBienCultural;
		protected UsrControls.DropDownBase ddlTipo;
		protected Anthem.RequiredFieldValidator reqAforo;
		protected Anthem.Label lblNivelBienCultural;
		protected Anthem.RadioButtonList rblSinoOcupaBienCultural;
		protected Anthem.RequiredFieldValidator reqMetrosConstruccion;

		#region - Eventos

		private void Page_Load(object sender, EventArgs e)
		{
			CambioAforo = CambioAforoEvent;

			if (!IsPostBack)
			{
				Manager.Register(this);

				reqAforo.ErrorMessage = Utilidad.TraerMensaje("gmsgCampoRequerido", txtAforo.ToolTip);
				reqMetrosConstruccion.ErrorMessage = Utilidad.TraerMensaje("gmsgCampoRequerido", txtMetrosConstruccion.ToolTip);

				if (this.Identificador==0)
				{
					CargarControles();
				}

				StringBuilder strOcupaBienCultural = new StringBuilder();
				strOcupaBienCultural.Append(rblSinoOcupaBienCultural.ClientID + "_0,");
				strOcupaBienCultural.Append(lblNivelBienCultural.ClientID + ",");
				strOcupaBienCultural.Append(ddlNivelBienCultural.ClientID);
				rblSinoOcupaBienCultural.Attributes["OnClick"] = "return habilitarCamposSINO(" + strOcupaBienCultural.ToString() + ")";
			}
		}

		private void txtAforo_TextChanged(object sender, System.EventArgs e)
		{
			CambioAforo(txtAforo.Text);
		}
		#endregion 

		#region - Metodos 		

		public InfraestructuraEntidadesCaracteristicasEspecificasData ObtenerDatos()
		{
			InfraestructuraEntidadesCaracteristicasEspecificasData objData = new InfraestructuraEntidadesCaracteristicasEspecificasData();
			DataRow fila = objData.NewRow();

			fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_ID_FIELD] = this.Identificador;
			fila[InfraestructuraEntidadesCaracteristicasEspecificasData.TIN_ID_FIELD] = ddlTipo.SelectedValue;
			fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_AFORO_FIELD] = txtAforo.Text;
			fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_METROS_CONSTRUCCION_FIELD] = txtMetrosConstruccion.Text;
			fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_OCUPA_BIC_FIELD] = rblSinoOcupaBienCultural.SelectedValue;
			if (rblSinoOcupaBienCultural.SelectedValue == "S")
			{
				fila[InfraestructuraEntidadesCaracteristicasEspecificasData.AMD_ID_FIELD] = ddlNivelBienCultural.SelectedValue;
			}

			objData.addInfraestructuraEntidadesCaracteristicasEspecificas(fila);

			return objData;
		}

		public void CreaEntorno(InfraestructuraEntidadesCaracteristicasEspecificasData dtTipoCapacidad)
		{
			if (!IsPostBack)
			{
				CargarControles();

				DataRow fila = dtTipoCapacidad.Rows[0];
				this.Identificador = Convert.ToDecimal(fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_ID_FIELD]);
				ddlTipo.SelectedValue = fila[InfraestructuraEntidadesCaracteristicasEspecificasData.TIN_ID_FIELD].ToString();
				txtAforo.Text = fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_AFORO_FIELD].ToString();
				txtMetrosConstruccion.Text = fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_METROS_CONSTRUCCION_FIELD].ToString();
				rblSinoOcupaBienCultural.SelectedValue = fila[InfraestructuraEntidadesCaracteristicasEspecificasData.INF_OCUPA_BIC_FIELD].ToString();
				if (rblSinoOcupaBienCultural.SelectedValue == Utilidad.SI)
				{
					lblNivelBienCultural.Enabled = true;
					ddlNivelBienCultural.Enabled = true;
					ddlNivelBienCultural.SelectedValue = fila[InfraestructuraEntidadesCaracteristicasEspecificasData.AMD_ID_FIELD].ToString();
				}
			}
		}

		private void CargarControles()
		{
			ddlTipo.Items.Clear();
            TiposInfraestructura objBR = new TiposInfraestructura(ConfigurationManager.AppSettings["Conn"]);
			TiposInfraestructuraData objDataTipoInfraestructura = new TiposInfraestructuraData();
			objDataTipoInfraestructura = objBR.BuscarTiposInfraestructura();
			if (objDataTipoInfraestructura != null)
			{
				ddlTipo.DataSource = objDataTipoInfraestructura.Tables[0].DefaultView;
				ddlTipo.DataTextField = TiposInfraestructuraData.TIN_NOMBRE_FIELD;
				ddlTipo.DataValueField = TiposInfraestructuraData.TIN_ID_FIELD;
				ddlTipo.DataBind();
			}

			ddlNivelBienCultural.Items.Clear();
            MinCultura.Sipa.RegistroCentrosHistoricos.AmbitosDeclaratorias objBRAmbitos = new MinCultura.Sipa.RegistroCentrosHistoricos.AmbitosDeclaratorias(ConfigurationManager.AppSettings["Conn"]);
			AmbitosDeclaratoriasData objDataAmbitos = objBRAmbitos.BuscarAmbitosDeclaratorias();
			if (objDataAmbitos != null)
			{
				ddlNivelBienCultural.DataSource = objDataAmbitos.Tables[0].DefaultView;
				ddlNivelBienCultural.DataTextField = "AMD_NOMBRE";
				ddlNivelBienCultural.DataValueField = "AMD_ID";
				ddlNivelBienCultural.DataBind();
			}			
		}
		#endregion 

		#region - Propiedades

		public decimal Identificador
		{
			get
			{
				if (ViewState["Identificador"] != null)
					return ((decimal) ViewState["Identificador"]);
				else
					return (0);
			}
			set { ViewState["Identificador"] = decimal.Parse(value.ToString()); }
		}

		public InfraestructuraEntidadesCaracteristicasEspecificasData TipoCapacidadData
		{
			get
			{
				return ObtenerDatos();	
			}
			set
			{
				CreaEntorno(value);
			}
		}

		#endregion 

		#region Web Form Designer generated code

		protected override void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void InitializeComponent()
		{
			this.txtAforo.TextChanged += new System.EventHandler(this.txtAforo_TextChanged);
			this.Load += new System.EventHandler(this.Page_Load);

		}

		#endregion

	}
}